home *** CD-ROM | disk | FTP | other *** search
/ CD-ROM Today (UK) (Spanish) 1 / CD ROM TODAY.iso / qmedia / setup.ms_ / setup.ms
Text File  |  1994-07-19  |  21KB  |  687 lines

  1. '**************************************************************************
  2. '*                       Q/Media For Windows Setup
  3. '**************************************************************************
  4.  
  5. '$INCLUDE 'setupapi.inc'
  6. '$INCLUDE 'msdetect.inc'
  7. '$INCLUDE 'mscpydis.inc'
  8.  
  9. ''Dialog ID's
  10.  
  11. CONST WELCOME           = 100
  12. CONST ASKQUIT           = 200
  13. CONST DESTPATH          = 300
  14. CONST CLOBBER           = 301
  15. CONST RESTART           = 302
  16. CONST SHARE_NOTE        = 303
  17. CONST EXITFAILURE       = 400
  18. CONST EXITQUIT          = 600
  19. CONST EXITSUCCESS       = 700
  20. CONST OPTIONS           = 800
  21. CONST APPHELP           = 900
  22. CONST DRVCHK            = 1000
  23. CONST MULTILIST         = 3900
  24. CONST CUSTINST          = 6200
  25. CONST TOOBIG            = 6300
  26. CONST BADPATH           = 6400
  27.  
  28. ''Bitmap ID
  29.  
  30. CONST LOGO         = 1
  31.  
  32. ''File Types
  33.  
  34. CONST APPFILES     = 1
  35. CONST OPTFILES1    = 2
  36. CONST OPTFILES2    = 3
  37.  
  38. '' Global Variables
  39.  
  40. GLOBAL DEST$
  41. GLOBAL WINDRIVE$
  42. GLOBAL SRCDRIVE$
  43. GLOBAL OPT1OPT$
  44. GLOBAL OPT2OPT$
  45. GLOBAL RESTARTWIN%
  46. GLOBAL RESTARTWINCUST%
  47. GLOBAL REBOOTMSG%
  48.  
  49. ''Install list symbol names
  50.  
  51. GLOBAL APPNEEDS$    ''Option list costs per drive
  52. GLOBAL OPT1NEEDS$
  53. GLOBAL OPT2NEEDS$
  54. GLOBAL OPT3NEEDS$
  55. GLOBAL OPT4NEEDS$
  56. GLOBAL OPT5NEEDS$
  57. GLOBAL EXTRACOSTS$  ''List of extra costs to add per drive
  58. GLOBAL BIGLIST$     ''List of option files cost calc results (boolean)
  59.  
  60. ''Dialog list symbol names
  61.  
  62. GLOBAL CHECKSTATES$
  63. GLOBAL STATUSTEXT$
  64. GLOBAL DRIVETEXT$
  65. GLOBAL SHORTLIST$
  66. GLOBAL DECIDED%
  67. GLOBAL CHOSENFILES1%
  68.  
  69. ''Function Declarations
  70.  
  71. DECLARE SUB AddOptFilesToCopyList (ftype%)
  72. DECLARE SUB RecalcOptFiles (ftype%)
  73. DECLARE SUB RecalcPath
  74. DECLARE SUB SetDriveStatus
  75. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  76. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  77. DECLARE FUNCTION VflatdPresent LIB "INIUPD.DLL" AS INTEGER
  78. DECLARE FUNCTION IsShareActive LIB "SHARECHK.DLL" AS INTEGER
  79. DECLARE FUNCTION PostMessage LIB "USER" (hwnd%, msg%, wparam%, lparam&) AS INTEGER
  80. DECLARE FUNCTION RegisterWindowMessage LIB "USER" (szRebootMessage$) AS INTEGER
  81. DECLARE SUB AddSomeFilesToCopyList (Section$, Src$, Dst$, Keys$)
  82. DECLARE SUB CreateInstallLog
  83. DECLARE SUB DoShareInstall
  84. DECLARE SUB DoDMABufferMod
  85. DECLARE SUB DoOLE2Reg
  86. DECLARE SUB DoVideoForWindowsInstall
  87. DECLARE SUB DoAutodeskInstall
  88. DECLARE SUB DoAWIInstall
  89. DECLARE SUB NOROOM
  90. DECLARE SUB ShowWindow LIB "user.exe" (hwnd%, size%)
  91.  
  92. INIT:
  93.     CUIDLL$ = "mscuistf.dll"            ''custom user interface dll
  94.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  95.  
  96.     VERSION% = GetWindowsMajorVersion()
  97.     IF VERSION% < 3 THEN
  98.         GOTO WRONGVER
  99.     END IF
  100.     VERSION% = GetWindowsMinorVersion()
  101.     IF VERSION% < 10 THEN
  102.         GOTO WRONGVER
  103.     END IF
  104.     PROCESSOR% = GetProcessorType()
  105.     IF PROCESSOR% < 3 THEN
  106.         GOTO WRONGPROCESSOR
  107.     END IF
  108.  
  109.     ShowWindow HwndFrame, 3
  110.     SetBitmap CUIDLL$, LOGO
  111.     SetTitle "Q╖Media CD-ROM Demonstration"
  112.  
  113.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  114.     IF szInf$ = "" THEN
  115.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  116.     END IF
  117.     ReadInfFile szInf$
  118.  
  119.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  120.     DEST$ = WINDRIVE$ + ":\QMDEMO"
  121.     SRCDRIVE$ = MID$(GetSymbolValue("STF_SRCDIR"), 1, 1)
  122.  
  123.     ''Register Reboot Windows Message
  124.  
  125.     REBOOTMSG% = RegisterWindowMessage("NSetup")
  126.  
  127.     ''CustInst list symbols
  128.     CHECKSTATES$ = "CheckItemsState"
  129.     STATUSTEXT$  = "StatusItemsText"
  130.     DRIVETEXT$   = "DriveStatusText"
  131.     FOR i% = 1 TO 3 STEP 1
  132.         AddListItem CHECKSTATES$, "ON"
  133.     NEXT i%
  134.     FOR i% = 1 TO 3 STEP 1
  135.         AddListItem STATUSTEXT$, ""
  136.     NEXT i%
  137.     FOR i% = 1 TO 7 STEP 1
  138.         AddListItem DRIVETEXT$, ""
  139.     NEXT i%
  140.     ReplaceListItem DRIVETEXT$, 7, DEST$
  141.  
  142.     ''Disk cost list symbols
  143.     APPNEEDS$   = "AppNeeds"
  144.     OPT1NEEDS$  = "Opt1Needs"
  145.     OPT2NEEDS$  = "Opt2Needs"
  146.     EXTRACOSTS$ = "ExtraCosts"
  147.     BIGLIST$    = "BigList"
  148.     SHORTLIST$  = "ShortList"
  149.     DECIDED%        = 0
  150.     RESTARTWIN%     = 0
  151.     RESTARTWINCUST% = 0
  152.     FOR i% = 1 TO 3 STEP 1
  153.         AddListItem BIGLIST$, ""
  154.     NEXT i%
  155.     FOR i% = 1 TO 26 STEP 1
  156.         AddListItem EXTRACOSTS$, "0"
  157.     NEXT i%
  158.     FOR i% = 1 TO 26 STEP 1
  159.         AddListItem SHORTLIST$, ""
  160.     NEXT i%
  161.  
  162.     RecalcPath
  163.     SetDriveStatus
  164.     SetCopyGaugePosition 120, 75
  165.  
  166.  
  167. ''Greeting
  168.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  169.     IF sz$ = "EXIT" THEN
  170.     GOSUB ASKQUIT
  171.     ELSE
  172.     UIPop 1
  173.     GOTO CUSTINST
  174.     END IF
  175.  
  176.  
  177. CUSTINST:
  178.  
  179.     sz$ = UIStartDlg(CUIDLL$, CUSTINST, "FCustInstDlgProc", APPHELP, HELPPROC$)
  180.  
  181.     IF sz$ = "CONTINUE" THEN
  182.         ''Install only if it will fit.
  183.         FOR i% = 1 TO 3 STEP 1
  184.         IF GetListItem(BIGLIST$, i%) <> "" THEN
  185.             GOSUB TOOBIG
  186.             GOTO CUSTINST
  187.         END IF
  188.         NEXT i%
  189.  
  190.         IF DoesDirExist(DEST$) = 1 AND DECIDED% = 0 THEN ''Dir already exists
  191.             sz$ = UIStartDlg(CUIDLL$, CLOBBER, "FInfo0DlgProc", 0, "")
  192.             UIPop 1
  193.             IF sz$ = "CONTINUE" THEN
  194.                 DECIDED% = 1
  195.             ELSE
  196.                 GOTO GETPATH
  197.             END IF
  198.         END IF
  199.         UIPop 1
  200.         GOTO INSTALL
  201.     ELSEIF sz$ = "PATH" THEN
  202.         GOTO GETPATH
  203.     ELSEIF sz$ = "CHK1" THEN
  204.         RecalcOptFiles APPFILES
  205.         SetDriveStatus
  206.         GOTO CUSTINST
  207.     ELSEIF sz$ = "CHK2" THEN
  208.         RecalcOptFiles OPTFILES1
  209.         SetDriveStatus
  210.         GOTO CUSTINST
  211.     ELSEIF sz$ = "CHK3" THEN
  212.         RecalcOptFiles OPTFILES2
  213.         SetDriveStatus
  214.         GOTO CUSTINST
  215.     ELSEIF sz$ = "REACTIVATE" THEN
  216.         RecalcPath
  217.         SetDriveStatus
  218.         GOTO CUSTINST
  219.     ELSE
  220.         GOSUB ASKQUIT
  221.         GOTO CUSTINST
  222.     END IF
  223.  
  224.  
  225. INSTALL:
  226.  
  227.     ClearCopyList
  228.  
  229.     AddOptFilesToCopyList APPFILES
  230.     AddOptFilesToCopyList OPTFILES1
  231.     AddOptFilesToCopyList OPTFILES2
  232.  
  233.     CreateDir DEST$, cmoNone
  234.     SetRestartDir DEST$
  235.     CopyFilesInCopyList
  236.  
  237.     IF RestartListEmpty() = 0 THEN
  238.         RESTARTWIN% =  1
  239.     END IF
  240.  
  241.     IF GetListItem(CHECKSTATES$, APPFILES) = "ON" THEN
  242.         CreateProgmanGroup "Q╖Media Demo", "", cmoNone
  243.         ShowProgmanGroup   "Q╖Media Demo", 1, cmoNone
  244.         CreateProgmanItem  "Q╖Media Demo", "Run Me First!!", MakePath(SRCDRIVE$+":\qmedia\demo","demo.exe"), SRCDRIVE$+":\qmedia\demo\demo.ico", cmoOverwrite
  245.         CreateProgmanItem  "Q╖Media Demo", "Q╖Media 2.0 Demo", MakePath(DEST$,"qmdemo.exe"), "", cmoOverwrite
  246.         CreateProgmanItem  "Q╖Media Demo", "Release Notes", MakePath(DEST$,"readme.wri"), "", cmoOverwrite
  247.         CreateProgmanItem  "Q╖Media Demo", "Q╖Media 2.0 Help", MakePath(DEST$,"qmedia.hlp"), "", cmoOverwrite
  248.         DoDMABufferMod
  249.         DoShareInstall
  250.         DoOLE2Reg
  251.     END IF
  252.  
  253.     ''Setup INI files for Multimedia Drivers
  254.  
  255.     IF GetListItem(CHECKSTATES$, OPTFILES1) = "ON" THEN
  256.         DoVideoForWindowsInstall
  257.     END IF
  258.  
  259.     IF GetListItem(CHECKSTATES$, OPTFILES2) = "ON" THEN
  260.         DoAutodeskInstall
  261.     END IF
  262.  
  263.  
  264. QUIT:
  265.  
  266.     ON ERROR GOTO ERRQUIT
  267.  
  268.     IF ERR = 0 THEN
  269.         dlg% = EXITSUCCESS
  270.     ELSEIF ERR = STFQUIT THEN
  271.         dlg% = EXITQUIT
  272.     ELSE
  273.         dlg% = EXITFAILURE
  274.     END IF
  275.  
  276. QUITL1:
  277.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  278.     IF sz$ = "REACTIVATE" THEN
  279.         GOTO QUITL1
  280.     END IF
  281.     UIPop 1
  282.  
  283. ARESTART:
  284.     IF RESTARTWIN% > 0 THEN
  285.         sz$ = UIStartDlg(CUIDLL$, RESTART, "FInfo0DlgProc", 0, "")
  286.         IF sz$ = "REACTIVATE" THEN
  287.             GOTO ARESTART
  288.         ELSEIF sz$ = "CONTINUE" THEN
  289.             UIPop 1
  290.             r% = ExitExecRestart()
  291.         END IF
  292.         UIPop 1
  293.     ELSEIF RESTARTWINCUST% > 0 THEN
  294.         sz$ = UIStartDlg(CUIDLL$, RESTART_PLEASE, "FInfo0DlgProc", 0, "")
  295.         IF sz$ = "REACTIVATE" THEN
  296.             GOTO ARESTART
  297.         ELSEIF sz$ = "CONTINUE" THEN
  298.             UIPop 1
  299.         END IF
  300.     END IF
  301.  
  302.     END
  303.  
  304.  
  305. ERRQUIT:
  306.     i% = DoMsgBox("Setup sources were corrupted, call (604) 879-1190!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  307.     END
  308.  
  309. WRONGVER:
  310.     i% = DoMsgBox("You must have Windows version 3.1 or higher to run this program. Contact your dealer!", "Wrong Version", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  311.     END
  312.  
  313. WRONGPROCESSOR:
  314.     i% = DoMsgBox("You must have an 80386 CPU or better to run this program. Contact your dealer!", "Wrong Processor", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  315.     END
  316.  
  317.  
  318. GETPATH:
  319.     SetSymbolValue "EditTextIn", DEST$
  320.     SetSymbolValue "EditFocus", "END"
  321. GETPATHL1:
  322.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  323.  
  324.     IF sz$ = "CONTINUE" THEN
  325.         olddest$ = DEST$
  326.         DEST$ = GetSymbolValue("EditTextOut")
  327.  
  328.         ''Validate new path.
  329.         IF IsDirWritable(DEST$) = 0 THEN
  330.         GOSUB BADPATH
  331.             GOTO GETPATHL1
  332.         END IF
  333.         UIPop 1
  334.  
  335.         ''Truncate display if too long.
  336.         IF LEN(DEST$) > 23 THEN
  337.             ReplaceListItem DRIVETEXT$, 7, MID$(DEST$, 1, 23)+"..."
  338.         ELSE
  339.             ReplaceListItem DRIVETEXT$, 7, DEST$
  340.         END IF
  341.  
  342.         ''Recalc if path changed.
  343.         IF (olddest$ <> DEST$) AND (olddest$ <> DEST$+"\") AND (olddest$+"\" <> DEST$) THEN
  344.             RecalcPath
  345.         SetDriveStatus
  346.         END IF
  347.  
  348.         olddest$ = ""
  349.         GOTO CUSTINST
  350.     ELSEIF sz$ = "REACTIVATE" THEN
  351.         RecalcPath
  352.         SetDriveStatus
  353.         GOTO GETPATHL1
  354.     ELSEIF sz$ = "EXIT" THEN
  355.         GOSUB ASKQUIT
  356.         GOTO GETPATHL1
  357.     ELSE
  358.         UIPop 1
  359.         GOTO CUSTINST
  360.     END IF
  361.  
  362.  
  363.  
  364. TOOBIG:
  365.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  366.     IF sz$ = "REACTIVATE" THEN
  367.         RecalcPath
  368.         SetDriveStatus
  369.         GOTO TOOBIG
  370.     END IF
  371.     UIPop 1
  372.     RETURN
  373.  
  374.  
  375. BADPATH:
  376.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  377.     IF sz$ = "REACTIVATE" THEN
  378.         RecalcPath
  379.         SetDriveStatus
  380.         GOTO BADPATH
  381.     END IF
  382.     UIPop 1
  383.     RETURN
  384.  
  385.  
  386.  
  387. ASKQUIT:
  388.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  389.  
  390.     IF sz$ = "EXIT" THEN
  391.         UIPopAll
  392.         ERROR STFQUIT
  393.     ELSEIF sz$ = "REACTIVATE" THEN
  394.         GOTO ASKQUIT
  395.     ELSE
  396.     UIPop 1
  397.     END IF
  398.     RETURN
  399.  
  400.  
  401.  
  402. '**
  403. '** Purpose:
  404. '**     Adds the specified option files to the copy list.
  405. '** Arguments:
  406. '**     ftype%  - type of files to add, one of the following:
  407. '**
  408. '** Returns:
  409. '**     none.
  410. '**************************************************************************
  411. SUB AddOptFilesToCopyList (ftype%) STATIC
  412.  
  413.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  414.     WinDir$ = GetWindowsDir()
  415.     WinSysDir$ = GetWindowsSysDir()
  416.  
  417.     IF GetListItem(CHECKSTATES$, ftype%) = "ON" THEN
  418.         IF ftype% = APPFILES THEN
  419.             AddSectionFilesToCopyList "Program Files", SrcDir$, DEST$
  420.             AddSectionFilesToCopyList "Borland", SrcDir$, WinSysDir$
  421.             AddSectionFilesToCopyList "OLE2", SrcDir$, WinSysDir$
  422.             AddSectionFilesToCopyList "Share", SrcDir$, WinSysDir$
  423.             AddSectionFilesToCopyList "Templates", SrcDir$, DEST$+"\template"
  424.             AddSectionFilesToCopyList "Acheiva", SrcDir$, DEST$+"\samples\acheiva"
  425.             ''AddSectionFilesToCopyList "Intro", SrcDir$, DEST$+"\samples\intro"
  426.         ELSEIF ftype% = OPTFILES1 THEN
  427.             AddSectionFilesToCopyList "VFW11", SrcDir$, WinSysDir$
  428.             AddSectionFilesToCopyList "OLE2", SrcDir$, WinSysDir$
  429.             AddSectionFilesToCopyList "IndeoIni", SrcDir$, WinDir$
  430.             AddSectionFilesToCopyList "MPlayer", SrcDir$, WinDir$
  431.         ELSEIF ftype% = OPTFILES2 THEN
  432.             AddSectionFilesToCopyList "Autodesk", SrcDir$, WinSysDir$
  433.         END IF
  434.     END IF
  435.  
  436.     SrcDir$ = ""
  437. END SUB
  438.  
  439.  
  440. '**
  441. '** Purpose:
  442. '**     Recalculates disk space for the given option files and sets
  443. '**     the status info symbol "StatusItemsText".
  444. '** Arguments:
  445. '**     ftype% - type of files to add, one of the following:
  446. '**             APPFILES, OPTFILES1, OPTFILES2, OPTFILES3,OPTFILES4
  447. '** Returns:
  448. '**     none.
  449. '*************************************************************************
  450. SUB RecalcOptFiles (ftype%) STATIC
  451.     CursorSave% = ShowWaitCursor()
  452.     ClearCopyList
  453.  
  454.     AddOptFilesToCopyList ftype%
  455.  
  456.     fExtra% = 0
  457.     IF ftype% = APPFILES THEN
  458.         ListSym$ = APPNEEDS$
  459.     ELSEIF ftype% = OPTFILES1 THEN
  460.         ListSym$ = OPT1NEEDS$
  461.     ELSEIF ftype% = OPTFILES2 THEN
  462.         ListSym$ = OPT2NEEDS$
  463.     END IF
  464.  
  465.     StillNeed& = GetCopyListCost(EXTRACOSTS$, ListSym$, "")
  466.  
  467.     cost& = 0
  468.     FOR i% = 1 TO 26 STEP 1
  469.         cost&  = cost& + VAL(GetListItem(ListSym$, i%))
  470.     NEXT i%
  471.     ReplaceListItem STATUSTEXT$, ftype%, STR$(cost& / 1024) + " K"
  472.  
  473.     IF StillNeed& > 0 THEN
  474.         ReplaceListItem BIGLIST$, ftype%, "YES"
  475.     ELSE
  476.         ReplaceListItem BIGLIST$, ftype%, ""
  477.     END IF
  478.  
  479.     IF fExtra% THEN
  480.         ReplaceListItem EXTRACOSTS$, ndrive%, "0"
  481.     END IF
  482.     RestoreCursor CursorSave%
  483.     ListSym$ = ""
  484. END SUB
  485.  
  486.  
  487. '**
  488. '** Purpose:
  489. '**     Recalculates disk space and sets option status info according
  490. '**     to the current destination path.
  491. '** Arguments:
  492. '**     none.
  493. '** Returns:
  494. '**     none.
  495. '*************************************************************************
  496. SUB RecalcPath STATIC
  497.  
  498.     CursorSave% = ShowWaitCursor()
  499.  
  500.     RecalcOptFiles APPFILES
  501.     RecalcOptFiles OPTFILES1
  502.     RecalcOptFiles OPTFILES2
  503.     RestoreCursor CursorSave%
  504. END SUB
  505.  
  506.  
  507. '**
  508. '** Purpose:
  509. '**     Sets drive status info according to latest disk space calcs.
  510. '** Arguments:
  511. '**     none.
  512. '** Returns:
  513. '**     none.
  514. '*************************************************************************
  515. SUB SetDriveStatus STATIC
  516.  
  517.     drive$ = MID$(DEST$, 1, 1)
  518.     ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
  519.     cost& = VAL(GetListItem(APPNEEDS$, ndrive%)) + VAL(GetListItem(OPT1NEEDS$, ndrive%)) + VAL(GetListItem(OPT2NEEDS$, ndrive%))
  520.     free& = GetFreeSpaceForDrive(drive$)
  521.     ReplaceListItem DRIVETEXT$, 1, drive$ + ":"
  522.     ReplaceListItem DRIVETEXT$, 2, STR$(cost& / 1024) + " K"
  523.     ReplaceListItem DRIVETEXT$, 3, STR$(free& / 1024) + " K"
  524.  
  525.     IF drive$ = WINDRIVE$ THEN
  526.         ReplaceListItem DRIVETEXT$, 4, ""
  527.         ReplaceListItem DRIVETEXT$, 5, ""
  528.         ReplaceListItem DRIVETEXT$, 6, ""
  529.     ELSE
  530.         ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
  531.         cost& = VAL(GetListItem(APPNEEDS$, ndrive%)) + VAL(GetListItem(OPT1NEEDS$, ndrive%)) + VAL(GetListItem(OPT2NEEDS$, ndrive%))
  532.         IF cost& = 0 THEN
  533.             ReplaceListItem DRIVETEXT$, 4, ""
  534.             ReplaceListItem DRIVETEXT$, 5, ""
  535.             ReplaceListItem DRIVETEXT$, 6, ""
  536.         ELSE
  537.             free& = GetFreeSpaceForDrive(WINDRIVE$)
  538.             ReplaceListItem DRIVETEXT$, 4, WINDRIVE$ + ":"
  539.             ReplaceListItem DRIVETEXT$, 5, STR$(cost& / 1024) + " K"
  540.             ReplaceListItem DRIVETEXT$, 6, STR$(free& / 1024) + " K"
  541.         END IF
  542.     END IF
  543. END SUB
  544.  
  545.  
  546. '**
  547. '** Purpose:
  548. '**     Appends a file name to the end of a directory path,
  549. '**     inserting a backslash character as needed.
  550. '** Arguments:
  551. '**     szDir$  - full directory path (with optional ending "\")
  552. '**     szFile$ - filename to append to directory
  553. '** Returns:
  554. '**     Resulting fully qualified path name.
  555. '*************************************************************************
  556.  
  557. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  558.     IF szDir$ = "" THEN
  559.     MakePath = szFile$
  560.     ELSEIF szFile$ = "" THEN
  561.     MakePath = szDir$
  562.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  563.     MakePath = szDir$ + szFile$
  564.     ELSE
  565.     MakePath = szDir$ + "\" + szFile$
  566.     END IF
  567. END FUNCTION
  568.  
  569. ''***********************************************************************
  570. ''Share Install
  571. ''***********************************************************************
  572.  
  573.  
  574. SUB DoShareInstall STATIC
  575.  
  576.     WinDir$ = GetWindowsDir
  577.  
  578.     If IsShareActive = 0 Then
  579.         CreateSysIniKeyValue WinDir$+"SYSTEM.INI", "386Enh", "device", "vshare.386", cmoOverwrite
  580.         ''Message Already posted from DoDMABufferMod
  581.         ''j% = PostMessage (65535, RebootMsg%, 0, 0)
  582.     End IF
  583.  
  584. END SUB
  585.  
  586. ''***********************************************************************
  587. ''Increase DMA Buffer Size
  588. ''***********************************************************************
  589.  
  590.  
  591. SUB DoDMABufferMod STATIC
  592.  
  593.     WinDir$ = GetWindowsDir
  594.  
  595.     CreateSysIniKeyValue WinDir$+"SYSTEM.INI", "386Enh", "DMABUFFERSIZE", "056", cmoOverwrite
  596.     j% = PostMessage (65535, RebootMsg%, 0, 0)
  597.  
  598. END SUB
  599.  
  600. ''***********************************************************************
  601. ''OLE2 Registration
  602. ''***********************************************************************
  603.  
  604.  
  605. SUB DoOLE2Reg STATIC
  606.  
  607.     WinSysDir$ = GetWindowsSysDir
  608.  
  609.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  610.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  611.  
  612. END SUB
  613.  
  614. ''***********************************************************************
  615. ''Autodesk Animation Install
  616. ''***********************************************************************
  617.  
  618. SUB DoAutodeskInstall STATIC
  619.  
  620.     WinDir$ = GetWindowsDir
  621.  
  622.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "fli", "Animation1", cmoOverwrite
  623.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "flc", "Animation1", cmoOverwrite
  624.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "aas", "Animation1", cmoOverwrite
  625.     CreateIniKeyValue WinDir$ + "SYSTEM.INI", "mci", "Animation1", "mciaap.drv", cmoNone
  626.  
  627. END SUB
  628.  
  629. ''***********************************************************************
  630. ''VFW11 Install
  631. ''***********************************************************************
  632.  
  633.  
  634. SUB DoVideoForWindowsInstall STATIC
  635.  
  636.     WinDir$ = GetWindowsDir
  637.     WinSysDir$ = GetWindowsSysDir
  638.  
  639.     ''Updating WIN.INI and SYSTEM.INI
  640.     IF VflatdPresent() = 0 THEN
  641.        CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  642.     END IF
  643.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  644.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  645.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "indeov.drv", cmoOverwrite
  646.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  647.     I% = DoesIniKeyExist ("system.ini", "Drivers", "VIDC.RT21")
  648.     IF I% = 0  THEN
  649.        CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "indeov.drv", cmoOverwrite
  650.     END IF
  651.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "indeov.drv", cmoOverwrite
  652.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  653.     CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  654.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  655.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  656.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  657.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  658.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  659.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  660.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "mplayer.reg"))
  661.  
  662.     '' Do OLE2 registration
  663.  
  664.     DoOLE2Reg
  665.  
  666.     '' Mplayer
  667.     CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite
  668.  
  669.  
  670. END SUB
  671.  
  672. ''***********************************************************************
  673. ''Gold Disk Install
  674. ''***********************************************************************
  675.  
  676. SUB DoAWIInstall STATIC
  677.  
  678.     WinDir$ = GetWindowsDir
  679.  
  680.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "awm", "Animation2", cmoOverwrite
  681.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "awa", "Animation2", cmoOverwrite
  682.     CreateIniKeyValue WinDir$ + "SYSTEM.INI", "mci", "Animation2", "mciawi.drv", cmoNone
  683.  
  684. END SUB
  685.  
  686.  
  687.